const {generateXlsx} = require('../generate-xlsx');

const _defaultValues = {
  item: 'PSY_Admin',
  subItem: 'PSY_Admin_',
  caseId: 0,
  priority: '高',
  description: '测试用例描述',
  preCondition: '前置条件',
  steps: '测试步骤',
  expected: '预期结果',
  status: 'passed | failed',
}

function transformTestCases(testCases, defaultValues = _defaultValues) {
  return [{
    name: '0',
    data: testCases.map((testCase, index) => [
      testCase.item || defaultValues.item || _defaultValues.item,
      testCase.subItem || defaultValues.subItem || _defaultValues.subItem,
      (testCase.subItem || defaultValues.subItem || _defaultValues.subItem) + index,
      testCase.priority || defaultValues.priority || _defaultValues.priority,
      testCase.description || defaultValues.description || _defaultValues.description,
      testCase.preCondition || defaultValues.preCondition || _defaultValues.preCondition,
      testCase.steps || defaultValues.steps || _defaultValues.steps,
      testCase.expected || defaultValues.expected || _defaultValues.expected,
      testCase.status === 'passed' ? '通过' : (testCase.actual || testCase.extra?.manualTestDesc || '未通过'),
    ])
  }];
}

function transformTestCasesToXlsx(testCases, defaultValues, fileName) {
  const data = transformTestCases(testCases, defaultValues);
  generateXlsx(data, fileName);
}

module.exports = {
  transformTestCases,
  transformTestCasesToXlsx,
}
